Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


Taskfile.yml e7728696c8d41c454ca3db0193af1736c6c32540 (e7728696) Text, 14.82 KB

Tff7b72versionTb4b4b4: Ta5d6ff"Ta5d6ff3Ta5d6ff"

Tff7b72varsTb4b4b4:
Tff7b72PYTHONTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${PYTHON:-python}"
Tff7b72NPMTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${NPM:-pnpm}"
Tff7b72LEGACY_ELECTRON_VERSIONTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${LEGACY_ELECTRON_VERSION:-30.0.8}"
Tff7b72DOCKER_COMPOSE_CMDTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_COMPOSE_CMD:-dockerTa5d6ff Ta5d6ffcompose}"
Tff7b72DOCKER_COMPOSE_FILETb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_COMPOSE_FILE:-docker-compose.yml}"
Tff7b72DOCKER_IMAGETb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_IMAGE:-reticulum-meshchatx:local}"
Tff7b72DOCKER_BUILDERTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_BUILDER:-meshchatx-builder}"
Tff7b72DOCKER_PLATFORMSTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_PLATFORMS:-linux/amd64}"
Tff7b72DOCKER_BUILD_FLAGSTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_BUILD_FLAGS:---load}"
Tff7b72DOCKER_BUILD_ARGSTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_BUILD_ARGS:-}"
Tff7b72DOCKER_CONTEXTTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_CONTEXT:-.}"
Tff7b72DOCKERFILETb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKERFILE:-Dockerfile}"
Tff7b72DOCKER_BUILD_IMAGETb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_BUILD_IMAGE:-reticulum-meshchatx-build:local}"
Tff7b72DOCKER_BUILD_FILETb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_BUILD_FILE:-Dockerfile.build}"
Tff7b72ANDROID_DIRTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${ANDROID_DIR:-android}"
Tff7b72PYTHON_SRC_DIRTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${PYTHON_SRC_DIR:-${ANDROID_DIR}/app/src/main/python}"
Tff7b72JNI_LIBS_DIRTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${JNI_LIBS_DIR:-${ANDROID_DIR}/app/src/main/jniLibs}"
Tff7b72RETICULUM_RNS_SRCTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${RETICULUM_RNS_SRC:-./misc/RNS}"
Tff7b72RETICULUM_LXMF_SRCTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${RETICULUM_LXMF_SRC:-./misc/LXMF}"
Tff7b72RETICULUM_LXST_SRCTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${RETICULUM_LXST_SRC:-./misc/LXST}"
Tff7b72SIDEBAND_CODEC2_WHLTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${SIDEBAND_CODEC2_WHL:-./misc/pycodec2-3.0.1-cp311-cp311-linux_aarch64.whl}"
Tff7b72SIDEBAND_LIB_ARM64Tb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${SIDEBAND_LIB_ARM64:-./misc/libcodec2-arm64-v8a.so}"
Tff7b72SIDEBAND_LIB_ARMEABITb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${SIDEBAND_LIB_ARMEABI:-./misc/libcodec2-armeabi-v7a.so}"

Tff7b72tasksTb4b4b4:
Tff7b72defaultTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffShowTa5d6ff Ta5d6ffavailableTa5d6ff Ta5d6fftasks
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6fftaskTa5d6ff Ta5d6ff--list

Tff7b72setup-python-envTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffSetupTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffenvironmentTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffPoetry
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffinstall
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffpipTa5d6ff Ta5d6ffinstallTa5d6ff Ta5d6ffruff

Tff7b72lint-pythonTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffLintTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffcodeTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffruff
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffruffTa5d6ff Ta5d6ffcheckTa5d6ff Ta5d6ff.
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffruffTa5d6ff Ta5d6ffformatTa5d6ff Ta5d6ff--checkTa5d6ff Ta5d6ff.

Tff7b72lint-frontendTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffLintTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ffcode
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6fflintTa5d6ff"

Tff7b72lintTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffallTa5d6ff Ta5d6fflintersTa5d6ff Ta5d6ff(frontendTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffPython)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3lint-frontendTb4b4b4, Te6edf3lint-pythonTb4b4b4]

Tff7b72format-pythonTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffFormatTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffcodeTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffruff
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffruffTa5d6ff Ta5d6ffformatTa5d6ff Ta5d6ff./Ta5d6ff Ta5d6ff--excludeTa5d6ff Ta5d6fftests
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffruffTa5d6ff Ta5d6ffcheckTa5d6ff Ta5d6ff--fixTa5d6ff Ta5d6ff./Ta5d6ff Ta5d6ff--excludeTa5d6ff Ta5d6fftests

Tff7b72format-frontendTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffFormatTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ffcodeTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffPrettierTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffESLint
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffformatTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6fflint:fixTa5d6ff"

Tff7b72formatTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffFormatTa5d6ff Ta5d6ffallTa5d6ff Ta5d6ffcodeTa5d6ff Ta5d6ff(PythonTa5d6ff Ta5d6ffandTa5d6ff Ta5d6fffrontend)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3format-pythonTb4b4b4, Te6edf3format-frontendTb4b4b4]

Tff7b72test-pythonTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6fftestsTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffpytest
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffpytestTa5d6ff Ta5d6fftests/backendTa5d6ff Ta5d6ff--cov=meshchatx/src/backend

Tff7b72test-python-covTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6fftestsTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6ffdetailedTa5d6ff Ta5d6ffcoverageTa5d6ff Ta5d6ffreport
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffpytestTa5d6ff Ta5d6fftests/backendTa5d6ff Ta5d6ff--cov=meshchatx/src/backendTa5d6ff Ta5d6ff--cov-report=term-missing

Tff7b72test-frontendTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6fftestsTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffvitest
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6fftestTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--excludeTe6edf3 Ta5d6fftests/frontend/i18n.test.jsTa5d6ff"

Tff7b72test-langTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6fflanguageTa5d6ff Ta5d6ffandTa5d6ff Ta5d6fflocalizationTa5d6ff Ta5d6fftests
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6fftestTe6edf3 Ta5d6fftests/frontend/i18n.test.jsTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ffpoetryTe6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffpytestTe6edf3 Ta5d6fftests/backend/test_translator_handler.pyTa5d6ff"

Tff7b72gen-locale-templateTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffGenerateTa5d6ff Ta5d6ffaTa5d6ff Ta5d6fflocales.jsonTa5d6ff Ta5d6fftemplateTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6ffemptyTa5d6ff Ta5d6ffvaluesTa5d6ff Ta5d6fffromTa5d6ff Ta5d6ffen.json
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.PYTHON}}Te6edf3 Ta5d6ffscripts/generate_locale_template.pyTa5d6ff"

Tff7b72testTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffallTa5d6ff Ta5d6fftests
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3test-pythonTb4b4b4, Te6edf3test-frontendTb4b4b4, Te6edf3test-langTb4b4b4]

Tff7b72test:covTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffallTa5d6ff Ta5d6fftestsTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6ffcoverageTa5d6ff Ta5d6ffreports
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3test-python-covTb4b4b4, Te6edf3test-frontendTb4b4b4]

Tff7b72checkTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffformat,Ta5d6ff Ta5d6fflintTa5d6ff Ta5d6ffandTa5d6ff Ta5d6fftest
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6ffformat
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6fflint
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6fftest

Tff7b72bench-backendTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffcomprehensiveTa5d6ff Ta5d6ffbackendTa5d6ff Ta5d6ffbenchmarks
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffpythonTa5d6ff Ta5d6fftests/backend/run_comprehensive_benchmarks.py

Tff7b72bench-extremeTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffextremeTa5d6ff Ta5d6ffbackendTa5d6ff Ta5d6ffstressTa5d6ff Ta5d6ffbenchmarksTa5d6ff Ta5d6ff(BreakingTa5d6ff Ta5d6ffSpaceTa5d6ff Ta5d6ffMode)
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffpythonTa5d6ff Ta5d6fftests/backend/run_comprehensive_benchmarks.pyTa5d6ff Ta5d6ff--extreme

Tff7b72profile-memoryTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffbackendTa5d6ff Ta5d6ffmemoryTa5d6ff Ta5d6ffprofilingTa5d6ff Ta5d6fftests
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffpytestTa5d6ff Ta5d6fftests/backend/test_memory_profiling.py

Tff7b72test-integrityTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffbackendTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffdataTa5d6ff Ta5d6ffintegrityTa5d6ff Ta5d6fftests
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffpoetryTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffpytestTa5d6ff Ta5d6fftests/backend/test_integrity.pyTa5d6ff Ta5d6fftests/backend/test_backend_integrity.py

Tff7b72benchTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffallTa5d6ff Ta5d6ffbackendTa5d6ff Ta5d6ffbenchmarksTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffmemoryTa5d6ff Ta5d6ffprofiling
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6ffbench-backend
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6ffprofile-memory

Tff7b72compileTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffCompileTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffcodeTa5d6ff Ta5d6fftoTa5d6ff Ta5d6ffcheckTa5d6ff Ta5d6ffforTa5d6ff Ta5d6ffsyntaxTa5d6ff Ta5d6fferrors
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.PYTHON}}Te6edf3 Ta5d6ff-mTe6edf3 Ta5d6ffcompileallTe6edf3 Ta5d6ffmeshchatx/Ta5d6ff"

Tff7b72installTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffallTa5d6ff Ta5d6ffdependenciesTa5d6ff Ta5d6ff(installsTa5d6ff Ta5d6ffnodeTa5d6ff Ta5d6ffmodulesTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffpythonTa5d6ff Ta5d6ffdeps)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3node_modulesTb4b4b4, Te6edf3pythonTb4b4b4]

Tff7b72node_modulesTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffNode.jsTa5d6ff Ta5d6ffdependencies
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffinstallTa5d6ff"

Tff7b72pythonTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffdependenciesTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffPoetry
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.PYTHON}}Te6edf3 Ta5d6ff-mTe6edf3 Ta5d6ffpoetryTe6edf3 Ta5d6ffinstallTa5d6ff"

Tff7b72runTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffapplication
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3installTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.PYTHON}}Te6edf3 Ta5d6ff-mTe6edf3 Ta5d6ffpoetryTe6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffmeshchatTa5d6ff"

Tff7b72devTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffapplicationTa5d6ff Ta5d6ffinTa5d6ff Ta5d6ffdevelopmentTa5d6ff Ta5d6ffmode
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6ffrun

Tff7b72buildTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffapplicationTa5d6ff Ta5d6ff(frontendTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffbackend)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3installTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffbuildTa5d6ff"

Tff7b72build-frontendTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffonlyTa5d6ff Ta5d6fftheTa5d6ff Ta5d6fffrontend
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3node_modulesTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffbuild-frontendTa5d6ff"

Tff7b72wheelTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffwheelTa5d6ff Ta5d6ffpackage
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3installTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.PYTHON}}Te6edf3 Ta5d6ff-mTe6edf3 Ta5d6ffpoetryTe6edf3 Ta5d6ffbuildTe6edf3 Ta5d6ff-fTe6edf3 Ta5d6ffwheelTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.PYTHON}}Te6edf3 Ta5d6ffscripts/move_wheels.pyTa5d6ff"

Tff7b72build-appimageTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffAppImage
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3buildTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--linuxTe6edf3 Ta5d6ffAppImageTa5d6ff"

Tff7b72build-exeTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffWindowsTa5d6ff Ta5d6ffportableTa5d6ff Ta5d6ffexecutable
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3buildTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--winTe6edf3 Ta5d6ffportableTa5d6ff"

Tff7b72build-electron-linuxTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffappTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6ffprebuiltTa5d6ff Ta5d6ffbackend
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdist:linuxTa5d6ff"

Tff7b72build-rpmTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffRPMTa5d6ff Ta5d6ffpackage
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdist:rpmTa5d6ff"

Tff7b72build-flatpakTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffFlatpakTa5d6ff Ta5d6ffpackage
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdist:flatpakTa5d6ff"

Tff7b72build-electron-windowsTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffWindowsTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffappsTa5d6ff Ta5d6ff(portableTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffinstaller)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdist:windowsTa5d6ff"

Tff7b72build-zipTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffZIPTa5d6ff Ta5d6ffarchiveTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffForge
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdist:zipTa5d6ff"

Tff7b72build-electron-allTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffallTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffappsTa5d6ff Ta5d6ff(LinuxTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffWindows)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffbuild-backendTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--linuxTe6edf3 Ta5d6ffAppImageTe6edf3 Ta5d6ffdebTe6edf3 Ta5d6ff--winTe6edf3 Ta5d6ffportableTe6edf3 Ta5d6ffnsisTa5d6ff"

Tff7b72distTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffdistributionTa5d6ff Ta5d6ff(defaultsTa5d6ff Ta5d6fftoTa5d6ff Ta5d6ffAppImage)
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6ffbuild-appimage

Tff7b72electron-legacyTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6fflegacyTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffversion
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffinstallTe6edf3 Ta5d6ff--no-saveTe6edf3 Ta5d6ffelectron@{{.LEGACY_ELECTRON_VERSION}}Ta5d6ff"

Tff7b72build-appimage-legacyTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffAppImageTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6fflegacyTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffversion
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3buildTb4b4b4, Te6edf3electron-legacyTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--linuxTe6edf3 Ta5d6ffAppImageTe6edf3 Ta5d6ff-c.extraMetadata.main=electron/main-legacy.jsTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff./scripts/rename_legacy_artifacts.shTa5d6ff"

Tff7b72build-exe-legacyTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffWindowsTa5d6ff Ta5d6ffportableTa5d6ff Ta5d6ffexecutableTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6fflegacyTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffversion
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3buildTb4b4b4, Te6edf3electron-legacyTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--winTe6edf3 Ta5d6ffportableTe6edf3 Ta5d6ff-c.extraMetadata.main=electron/main-legacy.jsTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff./scripts/rename_legacy_artifacts.shTa5d6ff"

Tff7b72forge-startTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffapplicationTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffForge
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffstartTa5d6ff"

Tff7b72forge-packageTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffPackageTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffapplicationTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffForge
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffpackageTa5d6ff"

Tff7b72forge-makeTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffGenerateTa5d6ff Ta5d6ffdistributablesTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffForge
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffmakeTa5d6ff"

Tff7b72cleanTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffCleanTa5d6ff Ta5d6ffbuildTa5d6ff Ta5d6ffartifactsTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffdependencies
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffnode_modules
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffbuild
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffdist
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffpython-dist
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffmeshchatx/public
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffbuild-dir
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffout
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6ffandroid-clean

Tff7b72build-dockerTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffDockerTa5d6ff Ta5d6ffimageTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffbuildx
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tb4b4b4|
Tff7b72if ! docker buildx inspect {{.DOCKER_BUILDER}} >/dev/null 2>&1; then
Tff7b72docker buildx create --name {{.DOCKER_BUILDER}} --use >/dev/null
Tff7b72else
Tff7b72docker buildx use {{.DOCKER_BUILDER}}
Tff7b72fi
Tb4b4b4- Tb4b4b4|
Tff7b72docker buildx build --builder {{.DOCKER_BUILDER}} --platform {{.DOCKER_PLATFORMS}} \
Tff7b72{{.DOCKER_BUILD_FLAGS}} \
Tff7b72-t {{.DOCKER_IMAGE}} \
Tff7b72{{.DOCKER_BUILD_ARGS}} \
Tff7b72-f {{.DOCKERFILE}} \
Tff7b72{{.DOCKER_CONTEXT}}

Tff7b72run-dockerTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffDockerTa5d6ff Ta5d6ffcontainerTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffdocker-compose
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff'Ta5d6ffMESHCHAT_IMAGE="{{.DOCKER_IMAGE}}"Te6edf3 Ta5d6ff{{.DOCKER_COMPOSE_CMD}}Te6edf3 Ta5d6ff-fTe6edf3 Ta5d6ff{{.DOCKER_COMPOSE_FILE}}Te6edf3 Ta5d6ffupTe6edf3 Ta5d6ff--remove-orphansTe6edf3 Ta5d6ff--pullTe6edf3 Ta5d6ffneverTe6edf3 Ta5d6ffreticulum-meshchatxTa5d6ff'

Tff7b72run-docker-devTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffDockerTa5d6ff Ta5d6ffcontainerTa5d6ff Ta5d6ffinTa5d6ff Ta5d6ffdevelopmentTa5d6ff Ta5d6ffmodeTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffdocker-compose.dev.yml
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff'Ta5d6ffMESHCHAT_IMAGE="{{.DOCKER_IMAGE}}"Te6edf3 Ta5d6ff{{.DOCKER_COMPOSE_CMD}}Te6edf3 Ta5d6ff-fTe6edf3 Ta5d6ffdocker-compose.dev.ymlTe6edf3 Ta5d6ffupTe6edf3 Ta5d6ff--buildTe6edf3 Ta5d6ff--remove-orphansTe6edf3 Ta5d6ffreticulum-meshchatxTa5d6ff'

Tff7b72docker-build-envTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffDockerTa5d6ff Ta5d6ffimageTa5d6ff Ta5d6ffforTa5d6ff Ta5d6ffcontainerizedTa5d6ff Ta5d6ffbuilds
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffdockerTa5d6ff Ta5d6ffbuildTa5d6ff Ta5d6ff-tTa5d6ff Ta5d6ff{{.DOCKER_BUILD_IMAGE}}Ta5d6ff Ta5d6ff-fTa5d6ff Ta5d6ff{{.DOCKER_BUILD_FILE}}Ta5d6ff Ta5d6ff.

Tff7b72docker-build-artifactsTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffwhlsTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffelectronTa5d6ff Ta5d6ffartifactsTa5d6ff Ta5d6ffinsideTa5d6ff Ta5d6ffaTa5d6ff Ta5d6ffcontainerTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffexportTa5d6ff Ta5d6ffthem
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffdockerTa5d6ff Ta5d6ffrmTa5d6ff Ta5d6ff-fTa5d6ff Ta5d6ffmeshchat-build-tempTa5d6ff Ta5d6ff||Ta5d6ff Ta5d6fftrue
Tb4b4b4- Ta5d6ffdockerTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ff--nameTa5d6ff Ta5d6ffmeshchat-build-tempTa5d6ff Ta5d6ff{{.DOCKER_BUILD_IMAGE}}
Tb4b4b4- Ta5d6ffmkdirTa5d6ff Ta5d6ff-pTa5d6ff Ta5d6ffdistTa5d6ff Ta5d6ffpython-dist
Tb4b4b4- Ta5d6ffdockerTa5d6ff Ta5d6ffcpTa5d6ff Ta5d6ffmeshchat-build-temp:/app/dist/.Ta5d6ff Ta5d6ff./dist/
Tb4b4b4- Ta5d6ffdockerTa5d6ff Ta5d6ffcpTa5d6ff Ta5d6ffmeshchat-build-temp:/app/python-dist/.Ta5d6ff Ta5d6ff./python-dist/
Tb4b4b4- Ta5d6ffdockerTa5d6ff Ta5d6ffrmTa5d6ff Ta5d6ffmeshchat-build-temp

Tff7b72android-initTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInitializeTa5d6ff Ta5d6ffGradleTa5d6ff Ta5d6ffwrapperTa5d6ff Ta5d6ffforTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffproject
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tb4b4b4|
Tff7b72if [ ! -f "{{.ANDROID_DIR}}/gradle/wrapper/gradle-wrapper.jar" ]; then
Tff7b72echo "Downloading Gradle wrapper jar..."
Tff7b72mkdir -p "{{.ANDROID_DIR}}/gradle/wrapper"
Tff7b72curl -L -o "{{.ANDROID_DIR}}/gradle/wrapper/gradle-wrapper.jar" \
Tff7b72https://raw.githubusercontent.com/gradle/gradle/v8.12.1/gradle/wrapper/gradle-wrapper.jar || \
Tff7b72echo "Failed to download. Please run: cd {{.ANDROID_DIR}} && gradle wrapper --gradle-version 8.12.1"
Tff7b72else
Tff7b72echo "Gradle wrapper already initialized."
Tff7b72fi

Tff7b72android-prepareTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffPrepareTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffbuildTa5d6ff Ta5d6ff(copyTa5d6ff Ta5d6ffmeshchatxTa5d6ff Ta5d6ffpackageTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffassets)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4, Te6edf3android-initTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tb4b4b4|
Tff7b72echo "Copying meshchatx package and dependencies to Android project..."
Tff7b72mkdir -p "{{.PYTHON_SRC_DIR}}"
Tff7b72# Remove old copies to ensure fresh build
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/meshchatx"
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/RNS"
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/LXMF"
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/LXST"

Tff7b72# Copy MeshChatX
Tff7b72cp -r meshchatx "{{.PYTHON_SRC_DIR}}/"

Tff7b72# Vendor RNS, LXMF, and LXST from ./misc/ and ./src/
Tff7b72cp -r ./misc/RNS "{{.PYTHON_SRC_DIR}}/"
Tff7b72cp -r ./misc/LXMF "{{.PYTHON_SRC_DIR}}/"
Tff7b72cp -r ./misc/LXST "{{.PYTHON_SRC_DIR}}/"
Tff7b72cp -r ./src/RNS "{{.PYTHON_SRC_DIR}}/" || true
Tff7b72cp -r ./src/LXMF "{{.PYTHON_SRC_DIR}}/" || true
Tff7b72cp -r ./src/LXST "{{.PYTHON_SRC_DIR}}/" || true

Tff7b72# Copy pycodec2 wheel from ./misc
Tff7b72cp "./misc/pycodec2-3.0.1-cp311-cp311-linux_aarch64.whl" "{{.PYTHON_SRC_DIR}}/" || true

Tff7b72# Copy native libraries from ./misc
Tff7b72mkdir -p "{{.JNI_LIBS_DIR}}/arm64-v8a"
Tff7b72mkdir -p "{{.JNI_LIBS_DIR}}/armeabi-v7a"
Tff7b72cp "./misc/libcodec2-arm64-v8a.so" "{{.JNI_LIBS_DIR}}/arm64-v8a/" || true
Tff7b72cp "./misc/libcodec2-armeabi-v7a.so" "{{.JNI_LIBS_DIR}}/armeabi-v7a/" || true

Tff7b72# Cleanup vendored packages (remove utilities/tests etc if needed, similar to Sideband)
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/RNS/Utilities/RNS"
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/LXMF/Utilities/LXMF"
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/LXST/Utilities/LXST"
Tb4b4b4- Tb4b4b4|
Tff7b72echo "Android build prepared. Don't forget to:"
Tff7b72echo "1. Add Chaquopy license to {{.ANDROID_DIR}}/local.properties"
Tff7b72echo "2. Open {{.ANDROID_DIR}}/ in Android Studio or run: task android-build"

Tff7b72android-buildTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffAPKTa5d6ff Ta5d6ff(requiresTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffSDKTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffChaquopyTa5d6ff Ta5d6fflicense)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3android-prepareTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffcdTa5d6ff Ta5d6ff"{{.ANDROID_DIR}}"Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff./gradlewTa5d6ff Ta5d6ffassembleDebug

Tff7b72android-build-releaseTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffAPKTa5d6ff Ta5d6ff(release,Ta5d6ff Ta5d6ffrequiresTa5d6ff Ta5d6ffsigningTa5d6ff Ta5d6ffconfig)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3android-prepareTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffcdTa5d6ff Ta5d6ff"{{.ANDROID_DIR}}"Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff./gradlewTa5d6ff Ta5d6ffassembleRelease

Tff7b72android-cleanTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffCleanTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffbuildTa5d6ff Ta5d6ffartifacts
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffcdTa5d6ff Ta5d6ff"{{.ANDROID_DIR}}"Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff./gradlewTa5d6ff Ta5d6ffclean
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ff"{{.PYTHON_SRC_DIR}}/meshchatx"


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────